package com.link.base.base.apilog.service;



import com.link.base.base.apilog.model.ApiLogLine;
import com.link.core.basic.service.BasicService;

import java.util.List;
import java.util.Map;

/** 
 * api接口调用日志记录行service
 * @author 许博文  
 * @date 2019/12/25
 */
public interface ApiLogLineService extends BasicService<ApiLogLine> {

    /**
     * DESC: 总数 (条形图或者趋势图)（指定时间段，以月份为度量单位）
     *
     * @param:
     * @return:
     * @auther: bowen.xu
     * @date: 2018/10/11 11:02 AM
     */
    List<ApiLogLine> queryNumTopN(ApiLogLine entity) throws Exception;

    /**
     * DESC: 总数 (条形图或者趋势图)（指定时间段，以天为度量单位）
     *
     * @param:
     * @return:
     * @auther: bowen.xu
     * @date: 2018/10/11 11:02 AM
     */
    List<ApiLogLine> queryTotalNum(ApiLogLine entity) throws Exception;

    /**
     * DESC: 错误  top10 (条形图）（可指定时间段，以月份为单位）
     *
     * @param:
     * @return:
     * @auther: bowen.xu
     * @date: 2018/10/11 11:02 AM
     */
    List<ApiLogLine> queryFailureTopN(ApiLogLine entity) throws Exception;

    /**
     * DESC:
     *
     * @param: 错误  总数 (条形图或者趋势图) （指定时间段，以天为度量单位）
     * @return:
     * @auther: bowen.xu
     * @date: 2018/10/11 11:03 AM
     */
    List<ApiLogLine> queryFailureNum(ApiLogLine entity) throws Exception;

    /**
     * DESC: 错误接口，正确接口比例 （饼图）（以月份为单位）
     *
     * @param:
     * @return:
     * @auther: bowen.xu
     * @date: 2018/10/11 11:03 AM
     */
    ApiLogLine queryRatio(ApiLogLine entity) throws Exception;

    /**
     * DESC: 查询头总数
     *
     * @param:
     * @return:
     * @auther: bowen.xu
     * @date: 2018/10/11 11:03 AM
     */
    ApiLogLine  queryTotalHeadNum(ApiLogLine entity)throws Exception;


    /**
     * DESC: 查询接口成功情况
     *
     * @param:
     * @return:
     * @auther: bowen.xu
     * @date: 2018/10/11 11:03 AM
     */
    public Map<String,Long> queryTotalAndSuccess(ApiLogLine entity)throws Exception;

    /**
     * @auther HuangLJ
     * @date 2018/10/15 3:52 PM
     * @param
     * @return
     * @throws Exception 报错
     * @comments 查询指定时间段内，接口报错最多的10个clientId
     */
    public List<ApiLogLine> queryClientFailureTopN(ApiLogLine entity) throws Exception;

    /**
     * 添加
     * @param apiLogLine
     * @throws Exception
     */
    public void insertApiLogLine(ApiLogLine apiLogLine) throws Exception;

    /**
     * 删除历史日志
     *
     * @author huanglongjian
     * @date 2019-09-28 23:17
     */
    public void deleteHistory() throws Exception;
}
